package com.platform.web.service;


import com.platform.common.base.Page;
import com.platform.web.model.Permission;

import java.util.List;
import java.util.Map;

/**
 * 系统权限接口类
 * 
 * @author LiangMingHui
 *
 */
public interface IPermissionService {

	/**
	 * 根据主键删除数据
	 *
	 * @param id
	 *            主键
	 * @return 返回执行结果
	 * @throws Exception
	 */
	int deleteByPrimaryKey(String id) throws Exception;

	/**
	 * 添加数据(所有值)
	 *
	 * @param record
	 * @return 返回执行结果
	 * @throws Exception
	 */
	int insert(Permission record) throws Exception;

	/**
	 * 条件添加数据(如果某些值为空则不添加)
	 *
	 * @param record
	 * @return 返回执行结果
	 * @throws Exception
	 */
	int insertSelective(Permission record) throws Exception;

	/**
	 * 如果权限值为空则不修改
	 *
	 * @param record
	 * @return 返回执行结果
	 * @throws Exception
	 */
	int updateByPrimaryKeySelective(Permission record) throws Exception;

	/**
	 * 修改权限(会修改所有值)
	 *
	 * @param record
	 * @return
	 * @throws Exception
	 */
	int updateByPrimaryKey(Permission record) throws Exception;

	/**
	 * 根据主键查询对象
	 *
	 * @param id
	 * @return 权限对象
	 * @throws Exception
	 */
	Permission selectByPrimaryKey(String id) throws Exception;

	/**
	 * 分页查询数据
	 *
	 * @param map
	 *            条件参数
	 * @return 返回分页数据结果
	 * @throws Exception
	 */
	Page<Permission> selectPermissionByPage(Map<String, Object> map) throws Exception;

	/**
	 * 分页查询数据2
	 *
	 * @param map
	 *            条件参数
	 * @param pageBean
	 *            分页参数
	 * @return
	 * @throws Exception
	 */
	Map<String, Object> selectPermissionByPage(Map<String, Object> map, Page<Object> pageBean) throws Exception;

	/**
	 * 批量删除权限项
	 *
	 * @param item
	 *            主键列表
	 * @return 删除数据的结果
	 * @throws Exception
	 */
	int deleteBatchByIds(List<String> item) throws Exception;

	/**
	 * 根据权限父ID查询子权限
	 *
	 * @param pid
	 *            父ID
	 * @param isChildrens
	 *            是否显示子权限
	 * @return
	 * @throws Exception
	 */
	List<Permission> selectPermissionByParentId(String pid, boolean isChildrens) throws Exception;

	/**
	 * 获取所有启用的权限项
	 *
	 * @return
	 * @throws Exception
	 */
	List<Permission> selectAllPermissionList() throws Exception;
}
